package main;
import (
	"gorm.io/gorm"
	"gorm.io/driver/mysql"   //"_" 代码不直接使用包, 底层链接要使用!
	"fmt"
)
type User struct{
	ID int64 `gorm:"column:id`
	Name string 
	Password string
	Email string
	Allow int64
}
//为Food绑定表名
func (v User) TableName() string {
	
	return "user"
}
func main(){
	//配置 MySQL 连接参数
	username:="root"
	password:="CR281619"
	host:="124.221.111.224"
	port:=3306
	Dbname:="stu"
	timeout:="10s"
	//拼接下dsn参数, dsn格式可以参考上面的语法，这里使用Sprintf动态拼接dsn参数，因为一般数据库连接参数，我们都是保存在配置文件里面，需要从配置文件加载参数，然后拼接dsn。
	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local&timeout=%s", username, password, host, port, Dbname, timeout)
	//连接MYSQL, 获得DB类型实例，用于后面的数据库读写操作。
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		panic("连接数据库失败, error=" + err.Error())
	}
	var users []User
	db.Find(&users)
	fmt.Printf("%+v\n",users)
	fmt.Print(users)
}